package simplehdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

import java.io.IOException;
import java.net.URI;

/**
* @Author : liqiang
* @Date : 2021/3/13 10:52
* @Description : 写入数据到HDFS文件中，可以用来将埋点数据写入，一般都是用日志服务器收集埋点日志，然后用flume存储到HDFS，
 * 这里我通过程序来写入到HDFS中，就不保存到本地文件中，如果数据量在某一时间很大，会导致HDFS写入太过频繁，用flume可以缓冲下
**/
public class WriteToHdfs {

    public static void main(String[] args) throws IOException {
        String des = "hdfs://node01:8020/test.txt";
        Configuration conf = new Configuration();

        FileSystem fs = FileSystem.get(URI.create(des),conf);

        FSDataOutputStream out = fs.create(new Path(des));
        for (int i = 0;i < 100;i++){
            out.writeUTF("Hello World!"+i+"\n");
        }

//        FSDataInputStream in  = fs.open(new Path(des));
//        //貌似只会读一行数据
//        String info = in.readUTF();
//        System.out.println("info:"+info);
        out.close();
        //in.close();
    }
}
